//
//  MYStatusTool.m
//  奇闻
//
//  Created by 似水灵修 on 14-11-27.
//  Copyright (c) 2014年 MingYueGuCheng. All rights reserved.
//

#import "MYStatusTool.h"
#import "MJExtension.h"
#import "MYHttpTool.h"

#import "MYStatusParam.h"
#import "MYStatusResult.h"
#import "MYStatusCacheTool.h"

@implementation MYStatusTool
+ (void)moreStatusWithMaxID:(id)maxID success:(void (^)(NSArray *))success failure:(void (^)(NSError *))failure
{
    /**
     *  access_token	false	string	采用OAuth授权方式为必填参数，其他授权方式不需要此参数，OAuth授权后获得。
     max_id	false	int64	若指定此参数，则返回ID小于或等于max_id的奇闻，默认为0。
     GET请求
     */
    //创建参数模型
    MYStatusParam *param = [MYStatusParam param];
    if (maxID) {//拼接参数
        param.max_id = maxID;
    }
#warning 先从本地获取
    NSArray *statuses = [MYStatusCacheTool statusesWithParam:param];
    if (statuses.count) {
        if (success) {
            success(statuses);
        }
        return;
    }
    // 发送
    // 注意这里需要模型转字典 因为AFN底层只能拿到字典去拼接
    // param.keyValues 直接把模型转换成字典
    [MYHttpTool GET:@"https://api.weibo.com/2/statuses/friends_timeline.json" parameters:param.keyValues success:^(id responseObject) {
        MYStatusResult *result = [MYStatusResult objectWithKeyValues:responseObject];
        if (success) {
            success(result.statuses);
#warning 获取成功存储
            [MYStatusCacheTool saveStatuses:result.statuses];
        }
    } failure:^(NSError *error) {
        if (failure) {
            failure(error);
        }
    }];

}
+ (void)newStatusWithSinceID:(id)sinceID success:(void (^)(NSArray *))success failure:(void (^)(NSError *))failure
{
    /**
     *  access_token	false	string	采用OAuth授权方式为必填参数，其他授权方式不需要此参数，OAuth授权后获得。
     since_id	false	int64	若指定此参数，则返回ID比since_id大的奇闻（即比since_id时间晚的奇闻），默认为0。
     GET请求
     */
    //拼接参数
    MYStatusParam *param = [MYStatusParam param];
    if (sinceID) {
        param.since_id = sinceID;
    }
#warning 先从本地获取
    NSArray *statuses = [MYStatusCacheTool statusesWithParam:param];
    if (statuses.count) {
        if (success) {
            success(statuses);
        }
        return;
    }
    [MYHttpTool GET:@"https://api.weibo.com/2/statuses/friends_timeline.json" parameters:param.keyValues success:^(id responseObject) {
        //把返回的数据转换成模型
        MYStatusResult *result = [MYStatusResult objectWithKeyValues:responseObject];
        if (success) {
            success(result.statuses);
#warning 获取成功存储
            [MYStatusCacheTool saveStatuses:result.statuses];
        }
    } failure:^(NSError *error) {
        if (failure) {
            failure(error);
        }
    }];

}
@end
